package com.yanqu.road.entity.enums;

public enum eOperaMaskShapeType {

    // =============== 【类型1】 ===============

    ZhiXian5(1,
            "直线5个",
            false,
            eOperaMaskBlockType.BombColorful,
            new int[][]{
                    {1, 1, 1, 1, 1},
            }),

    XieXian5(1,
            "斜线5个",
            true,
            eOperaMaskBlockType.BombColorful,
            new int[][]{
                    {0, 0, 0, 0, 1},
                    {0, 0, 0, 1, 0},
                    {0, 0, 1, 0, 0},
                    {0, 1, 0, 0, 0},
                    {1, 0, 0, 0, 0},
            }),

    ZhiXianL(1, "直线L形",
            false,
            eOperaMaskBlockType.BombShiZi,
            new int[][]{
                    {1, 0, 0},
                    {1, 0, 0},
                    {1, 1, 1},
            }),

    ZhiXianT(1, "直线T形",
            false,
            eOperaMaskBlockType.BombShiZi,
            new int[][]{
                    {1, 1, 1},
                    {0, 1, 0},
                    {0, 1, 0},
            }),

    ZhiXianShiZi(1, "直线十字",
            false,
            eOperaMaskBlockType.BombShiZi,
            new int[][]{
                    {0, 1, 0},
                    {1, 1, 1},
                    {0, 1, 0},
            }),

    XieXianV(1, "斜线V形",
            true,
            eOperaMaskBlockType.BombShiZi,
            new int[][]{
                    {1, 0, 0, 0, 1},
                    {0, 1, 0, 1, 0},
                    {0, 0, 1, 0, 0},
            }),

    XieXianY(1, "斜线Y形",
            true,
            eOperaMaskBlockType.BombShiZi,
            new int[][]{
                    {0, 0, 0, 0, 1},
                    {0, 0, 0, 1, 0},
                    {0, 0, 1, 0, 0},
                    {0, 0, 1, 0, 0},
                    {0, 0, 1, 0, 0},
            }),

    ZhiXian4(1, "直线4个",
            false,
            null,
            new int[][]{
                    {1, 1, 1, 1},
            }),

    XieXian4(1, "斜线4个",
            true,
            null,
            new int[][]{
                    {0, 0, 0, 1},
                    {0, 0, 1, 0},
                    {0, 1, 0, 0},
                    {1, 0, 0, 0},
            }),

    // =============== 【类型2】 ===============

    ZhiXian3(2,
            "直线3个",
            false,
            null,
            new int[][]{
                    {1, 1, 1},
            }),

    XieXian3(2,
            "斜线3个",
            true,
            null,
            new int[][]{
                    {0, 0, 1},
                    {0, 1, 0},
                    {1, 0, 0},
            }),

    ;

    private int type; // 1生成炸弹的形状，2技能16的形状
    private String desc;
    private boolean oblique;
    private eOperaMaskBlockType appointBombType; // 指定这种形状生成的炸弹类型，不指定时为null
    private int[][] value;

    eOperaMaskShapeType(int type, String desc, boolean oblique, eOperaMaskBlockType appointBombType, int[][] value) {
        this.desc = desc;
        this.oblique = oblique;
        this.appointBombType = appointBombType;
        this.value = value;
        this.type = type;
    }

    public boolean isOblique() {
        return oblique;
    }

    public void setOblique(boolean oblique) {
        this.oblique = oblique;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int[][] getValue() {
        return value;
    }

    public void setValue(int[][] value) {
        this.value = value;
    }

    public eOperaMaskBlockType getAppointBombType() {
        return appointBombType;
    }

    public void setAppointBombType(eOperaMaskBlockType appointBombType) {
        this.appointBombType = appointBombType;
    }

    public int getType() {
        return type;
    }
}
